{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a9af3ae4-0658-47f3-9640-08ede8f6a7d5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "w= [2.13756953] b= [90.78228498]\n"
     ]
    }
   ],
   "source": [
    "#使用最小二乘法训练线性回归模型\n",
    "import numpy as np\n",
    "from sklearn.linear_model import LinearRegression\n",
    "x=np.array([[100],[113],[90],[89],[60],[70],[50],[45],[55],[78]])\n",
    "y=np.array([[301],[324],[285],[296],[200],[260],[300],[120],[180],[245]])\n",
    "model=LinearRegression()\n",
    "model.fit(x,y)\n",
    "print(\"w=\",model.coef_[0],\"b=\",model.intercept_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1d2d20fa-083c-4a4e-8fa5-6316520d7293",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAGxCAYAAAB1Hiz1AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQcNJREFUeJzt3X18U+X9//F3m5YCgzatMBhYpFCnA4oo1tZWUSdfxxRU4s2PwaToVFTEedcpX2/RCTgRcV8VxbsCExxqKzrmlIGi0LVS5Cal6KxSQRQHmCZFILTJ+f1xRqS3FGiTnOT1fDzyeJjrOmk+F8Xkzbmuc64YwzAMAQAAWFhsqAsAAAA4VgQaAABgeQQaAABgeQQaAABgeQQaAABgeQQaAABgeQQaAABgeQQaAABgeQQaAABgeQQaAABgeSEPNCNGjFBBQYEkqby8XJmZmUpOTlZ+fr4O3ZWhpT4AABDdQhpoXnnlFb377ruSJK/Xq1GjRmno0KEqKytTRUVFIOi01AcAABATqs0pv//+ew0YMEB2u11333237Ha7rrnmGn399dfq3LmzNmzYoEmTJmnVqlV68803m+1rjtfrldfrDTz3+/36/vvvddxxxykmJiYYQwQAAMfIMAzV1NSoV69eio1t/jxMXBBrqueOO+7Q6NGjtW/fPknShg0blJ2drc6dO0uSBg8erIqKisP2NWf69OmaOnVqO44AAAAEy7Zt23T88cc32x+SQPP+++9r+fLlKi8v1y233CJJ8ng8SktLCxwTExMjm80ml8vVYl9ycnKT7zFlyhTdfvvtgedut1t9+vTRtm3blJiY2E4jAwAAbcnj8Sg1NVVdu3Zt8bigB5r9+/dr4sSJmjNnTr1gERcXp4SEhHrHduzYUXv37m2xr7lAk5CQ0Og1kpSYmEigAQDAYg63XCToi4IffvhhZWZm6qKLLqrXnpKSop07d9Zrq6mpUYcOHVrsAwAACPoZmoULF2rnzp2y2+2SpL1792rx4sXq27evamtrA8dVVVXJ6/UqJSVFmZmZeuGFF5rsAwAACPoZmo8++kjl5eVav3691q9fr4svvlgPPfSQPvzwQ7ndbs2fP1+SNGPGDA0fPlw2m03Dhg1rtg8AACDoZ2garlDu0qWLunXrpm7dumnu3LkaO3as8vPz5fP5tHLlSrPIuLhm+wAAAEJ2H5rmbN++XWVlZcrJyVH37t1b3Xc4Ho9HSUlJcrvdLAoGAMAiWvv9HbL70DSnd+/e6t279xH3AQCA6BXyvZwAAACOFYEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYHoEGAABYXkgDze7du1VcXKxdu3aFsgwAAGBxIQs0r776qtLT0zVp0iT16dNHr776qiRp8uTJiomJCTzS09MDrykvL1dmZqaSk5OVn58vwzBCVT4AAAgjIQk01dXVmjx5sj766COtW7dOzz33nO666y5J0tq1a7V06VK5XC65XC6tW7dOkuT1ejVq1CgNHTpUZWVlqqioUEFBQSjKBwAAYSYkgaampkazZ8/WoEGDJEmnnHKKXC6X6urqVF5ermHDhslut8tut6tr166SpHfeeUdut1uzZs1S//79NW3aNL344ouhKB8AAISZkASa1NRUjRs3TpJUW1urmTNnyuFwaOPGjTIMQ0OGDFGnTp00YsQIbd26VZK0YcMGZWdnq3PnzpKkwYMHq6Kiotn38Hq98ng89R4AACAyhXRR8IYNG9SjRw+99957mj17tjZv3qyBAwdq0aJFqqioUHx8vCZOnChJ8ng8SktLC7w2JiZGNptNLperyZ89ffp0JSUlBR6pqalBGRMAAAi+GCOEK2sNw9D69et15513KjExUUVFRfX6v/rqK/Xr108ul0uPPPKIamtrNWvWrEB/amqqSkpK1Lt370Y/2+v1yuv1Bp57PB6lpqbK7XYrMTGx/QYFAADajMfjUVJS0mG/v+OCWFMjMTExOvXUU1VQUKATTjhBLpdLycnJgX673S6/369vv/1WKSkpKi8vr/f6mpoadejQocmfnZCQoISEhHatHwAAhIeQTDmt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69ZF7FjLy8v1zDPPaPbs2ZIi83c6duzYwO/S5XJp27Zt6tatm84888yIGusXX3yhe+65R2+++aYqKip0wgknaMKECRH3O/3nP/+pW265RU888YQ2bNggj8ej0aNHR8w4d+3apZEjR9b78mtpbFYdd1PjbKk9ksb5xRdf6Oqrr9aMGTO0fft2nXDCCbr22mslheE4jQi1e/duo0ePHsZJJ51kvPzyy0ZRUZGRnJxs/PDDD4ZhGMb69euN3NzcEFd5bGpra42uXbsaNTU19dojcax+v9/Iyckx7rvvvkBbJI6zoUceecS4/vrrI26sr732mnHFFVcEnn/00UfGz372s4gb51VXXWXceuutgeebNm0yJBmvv/56RIzz/PPPN2bPnm1IMrZs2WIYRsv/X1r199vUOFtqj6Rxvv3228acOXMCx6xYscLo0KGDYRjhN86IPUNzxx13aPTo0crOzpYkbdiwQdnZ2ercubMkafDgwaqoqAhlicds48aNMgxDQ4YMUadOnTRixAht3bo1Isf6/PPPa/369UpLS9Pf/vY31dbWRuQ4D7V//349+eSTmjJlSsSNdcCAAVqxYoXWrVsnt9utp59+Wv/zP/8TcePctWuX+vTpE3h+8O7m5eXlETHOuXPn6ve//329tpZ+h1b9/TY1zpbaI2mcI0eO1A033BB4/tlnnwWWNoTbOCMy0Lz//vtavny5Hn300UCbx+NRWlpa4HlMTIxsNptcLlcoSmwTmzdv1sCBA7Vo0SJVVFQoPj5eEydOjLix7tmzR/fee69OPPFEff3115o1a5aGDRsWceNsaOHChcrOzlbfvn0jbqwDBgzQ5ZdfrtNOO012u12lpaWaOXNmxI1zyJAheuuttwLrCl5++WWdccYZETPOfv36NWpraWxWHXdT42ypPdLGedCBAwc0c+ZM3XTTTZLCb5wRF2j279+viRMnas6cOfV2Ao2Li2t0q+aOHTtq7969wS6xzYwbN04lJSXKzMxUWlqannrqKb333nvy+/0RNdbCwkL98MMPWrFihe677z699957qq6u1ksvvRRR42zo2WefDfzLKNL+/paUlOjtt99WaWmpampq9Jvf/EYXXnhhxI3zzjvv1IEDBzR06FDl5OTo0Ucf1c033xxx4zxUS2OL5HEfKlLHee+996pLly66/vrrJYXfOCMu0Dz88MPKzMzU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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#图表方法\n",
    "import matplotlib.pyplot as plt\n",
    "y2=model.predict(x)\n",
    "plt.xlabel('面积')\n",
    "plt.ylabel('售价')\n",
    "plt.rcParams['font.sans-serif']='Simhei'\n",
    "plt.axis([40,125,100,400])\n",
    "plt.scatter(x,y,s=60,c='k',marker='o')\n",
    "plt.plot(x,y2,'r-')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "e48cd243-f48f-4330-ace7-32e584da3fc9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "200平方米二手房的预测房价是： 518.2961916987591\n"
     ]
    }
   ],
   "source": [
    "a=model.predict([[200]])\n",
    "print(\"200平方米二手房的预测房价是：\",a[0][0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "f1e0af16-6fa9-42e0-8815-92ee18837595",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "均方误差为： 1697.4442789901582\n",
      "均方根误差为： 41.200051929459484\n",
      "预测准确率为： 0.8148333769437266\n"
     ]
    }
   ],
   "source": [
    "#线性回归模型的性能评估\n",
    "x_test=np.array([[103],[115],[90],[89],[60],[70],[50],[45],[55],[78]])\n",
    "y_test=np.array([[301],[344],[275],[276],[206],[210],[160],[124],[190],[235]])\n",
    "mse=np.average((y2-np.array(y))**2)\n",
    "rmse=np.sqrt(mse)\n",
    "r2=model.score(x_test,y_test)\n",
    "print(\"均方误差为：\",mse)\n",
    "print(\"均方根误差为：\",rmse)\n",
    "print(\"预测准确率为：\",r2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b5e2284f-c198-4f5a-aa29-84a4f9216198",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
